<html>
<head><meta charset="utf-8"><title>temporary lifetimes for awaited future #64292 #64391 · wg-async-foundations · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/index.html">wg-async-foundations</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html">temporary lifetimes for awaited future #64292 #64391</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="175532208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532208">(Sep 12 2019 at 14:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="126931">@centril</span> (just in case you missed this in your GitHub notifications), any thoughts on what to do about the breakage from <a href="https://github.com/rust-lang/rust/issues/64292" target="_blank" title="https://github.com/rust-lang/rust/issues/64292">#64292</a>?</p>



<a name="175532265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532265">(Sep 12 2019 at 14:06)</a>:</h4>
<p>I saw the notification but didn't read up on it yet</p>



<a name="175532267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532267">(Sep 12 2019 at 14:06)</a>:</h4>
<p>(haven't processed it yet sorry)</p>



<a name="175532274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532274">(Sep 12 2019 at 14:06)</a>:</h4>
<p>(I've kind of gotten my GH notifications "under control-ish", at least if my name or a team is mentioned)</p>



<a name="175532343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532343">(Sep 12 2019 at 14:07)</a>:</h4>
<p>No worries, just wanted to make sure you saw it.</p>



<a name="175532358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532358">(Sep 12 2019 at 14:07)</a>:</h4>
<p>seems ungreat, though</p>



<a name="175532366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532366">(Sep 12 2019 at 14:07)</a>:</h4>
<p>argh.</p>



<a name="175532369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532369">(Sep 12 2019 at 14:07)</a>:</h4>
<p>I guess I can imagine why this is happening</p>



<a name="175532433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532433">(Sep 12 2019 at 14:08)</a>:</h4>
<p>we have a bug around NLL to kind of look into whether we can some similar cases</p>



<a name="175532435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532435">(Sep 12 2019 at 14:08)</a>:</h4>
<p>have to go find it</p>



<a name="175532822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532822">(Sep 12 2019 at 14:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116107">@davidtwco</span> can you open an issue on the breakage?</p>



<a name="175532841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532841">(Sep 12 2019 at 14:13)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/64391" target="_blank" title="https://github.com/rust-lang/rust/issues/64391">https://github.com/rust-lang/rust/issues/64391</a> has already been opened</p>



<a name="175532848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175532848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175532848">(Sep 12 2019 at 14:13)</a>:</h4>
<p>ok</p>



<a name="175809275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175809275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175809275">(Sep 16 2019 at 13:01)</a>:</h4>
<p>so um I realized last night that we kind of dropped the ball on this (too many balls) --</p>



<a name="175810169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175810169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175810169">(Sep 16 2019 at 13:11)</a>:</h4>
<p>So </p>
<p>cc <span class="user-group-mention" data-user-group-id="1172">@WG-async-foundations</span> but also<br>
cc lang-team: <span class="user-mention" data-user-id="126931">@centril</span>, <span class="user-mention" data-user-id="239881">@Josh Triplett</span>, <span class="user-mention" data-user-id="116083">@pnkfelix</span>, <span class="user-mention" data-user-id="203289">@boats</span>, <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> but also<br>
especially cc <span class="user-mention" data-user-id="215333">@Florian Gilcher</span>, as I think this presents a "schedule risk" to stabilizing async-await, and I'm sure you'd like to know =)</p>
<p>It seems pretty important that we decide whether this breakage is acceptable and if we're going to change anything about it. Unfortunately, this is a pretty thorny area overall (one we've long hoped to try and tweak, though I don't hold out a ton of hope).</p>
<p>The TL;DR is that we have to decide how <code>foo.await</code> interacts with the temporary rules. Unfortunately, this is the kind of issue that is quite hard to assess in the abstract. We <em>thought</em> we'd made the right decision before in fixing <a href="https://github.com/rust-lang/rust/issues/63832" target="_blank" title="https://github.com/rust-lang/rust/issues/63832">#63832</a>, but it seems clear that it's had a lot of impact, and I'm not convinced we're making the right call in a practical sense (although it still feels the most "consistent" to me).</p>
<p>I was thinking I will try to spend some day today getting to the bottom of <em>exactly</em> what's happening and trying to do a write-up, then maybe we can try to reach a decision on what to do.</p>



<a name="175810287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175810287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175810287">(Sep 16 2019 at 13:13)</a>:</h4>
<p>At the moment, async-await is stable on nightly. The next beta date is September 26th 2019, though typically I think beta branches a few days earlier than that. The good news is that we still have this week to deliberate. The bad news is that this doesn't give us a lot of time to gain experience with any potential tweaks before the beta branches (though we could backport a decision).</p>



<a name="175810316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175810316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175810316">(Sep 16 2019 at 13:13)</a>:</h4>
<p>And yes, I lost quite a bit of sleep about this last night when I remembered it <span aria-label="sleepy" class="emoji emoji-1f62a" role="img" title="sleepy">:sleepy:</span></p>



<a name="175810483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175810483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175810483">(Sep 16 2019 at 13:15)</a>:</h4>
<blockquote>
<p>It seems pretty important that we decide whether this breakage is acceptable and if we're going to change anything about it.</p>
</blockquote>
<p>You mean in the sense that we assess what is overall most ergonomic using the breakage as "how is code going to look like in 3 years"? (I think it's clearly allowed within the stability policy to break this code)</p>



<a name="175811058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175811058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175811058">(Sep 16 2019 at 13:22)</a>:</h4>
<p>Yes, sorry.</p>



<a name="175811072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175811072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175811072">(Sep 16 2019 at 13:22)</a>:</h4>
<p>I guess you mean "we can break code using async-await <em>today</em> as it is not yet stable" and I definitely agree</p>



<a name="175811074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175811074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175811074">(Sep 16 2019 at 13:22)</a>:</h4>
<p>but the question is "is it good that this code broke" :)</p>



<a name="175811833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175811833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175811833">(Sep 16 2019 at 13:32)</a>:</h4>
<p>Thanks for writing this up Niko; I was curious what had happened.</p>
<p>I'm mostly curious if this the particular interaction of rules is simply<br>
stricter than we'd like at the moment, and we can loosen them later; or if<br>
it's something more fundamental and not quite "forward compatible". Though<br>
also understandable if that's still unclear (:</p>
<p>The reason why I'm asking is because for our code we've found it to be a<br>
bit annoying, but not devastating. So if it's something that can be tackled<br>
post-MVP I'd be okay with that.<br>
— Yosh</p>



<a name="175812100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175812100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175812100">(Sep 16 2019 at 13:35)</a>:</h4>
<p><span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> I'm trying to document <em>exactly</em> what was affected and why, and then I'll better be able to answer that question. I would say however that it is not obvious that this would be something we can fix later</p>



<a name="175812160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175812160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175812160">(Sep 16 2019 at 13:36)</a>:</h4>
<p>I'm almost done with my first survey, but I would be interested to know if you have a lot of examples of broken code, so I can be sure to understand the patterns (and document the extent of the effect)</p>



<a name="175813805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175813805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175813805">(Sep 16 2019 at 13:54)</a>:</h4>
<p>Specifically, <span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> / <span class="user-mention" data-user-id="128448">@stjepang</span>, is there more impact than <a href="https://github.com/async-rs/async-std/pull/182/" target="_blank" title="https://github.com/async-rs/async-std/pull/182/">the changes I see here</a>?</p>



<a name="175814884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175814884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175814884">(Sep 16 2019 at 14:06)</a>:</h4>
<p>In any case, I <a href="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0" target="_blank" title="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0">created a gist</a> describing the situation and starting to catalog the effects. I plan to keep updating it, but those who'd like to get up to date should check it out.</p>



<a name="175814924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175814924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175814924">(Sep 16 2019 at 14:07)</a>:</h4>
<p>Yeah, that's all that we needed to change on our end. That said I didn't<br>
have the greatest time debugging it<br>
&lt;<a href="https://twitter.com/yoshuawuyts/status/1171771795613126657" target="_blank" title="https://twitter.com/yoshuawuyts/status/1171771795613126657">https://twitter.com/yoshuawuyts/status/1171771795613126657</a>&gt; (Stjepan<br>
bailed me out here), but otherwise the changes have been fairly limited for<br>
our work.<br>
— Yosh</p>
<div class="inline-preview-twitter"><div class="twitter-tweet"><a href="https://twitter.com/yoshuawuyts/status/1171771795613126657" target="_blank"><img class="twitter-avatar" src="https://pbs.twimg.com/profile_images/1140201002748059648/bZgi5As5_normal.jpg"></a><p>eep <a href="https://t.co/selTQtecaL" target="_blank" title="https://t.co/selTQtecaL">https://twitter.com/yoshuawuyts/status/1171771795613126657/photo/1</a></p><span>- yosh (@yoshuawuyts)</span><div class="twitter-image"><a href="https://t.co/selTQtecaL" target="_blank" title="https://t.co/selTQtecaL"><img src="https://pbs.twimg.com/media/EEL4OxeX4AEATwm.png:small"></a></div></div></div>



<a name="175816497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816497">(Sep 16 2019 at 14:22)</a>:</h4>
<p>woah</p>



<a name="175816507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816507">(Sep 16 2019 at 14:23)</a>:</h4>
<p>that reminds me that I have to finish improving the diagnostics</p>



<a name="175816536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816536">(Sep 16 2019 at 14:23)</a>:</h4>
<p><span class="user-mention" data-user-id="116883">@tmandry</span> seemed to report substantially more impact on Fuschia</p>



<a name="175816549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816549">(Sep 16 2019 at 14:23)</a>:</h4>
<p>In any case, reviewing the cases it didn't seem as bad as I initially remembered, so it may be that there is no action needed here.</p>



<a name="175816568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816568">(Sep 16 2019 at 14:23)</a>:</h4>
<p>But in any case i'd like to decide that <strong>now</strong></p>



<a name="175816576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175816576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175816576">(Sep 16 2019 at 14:24)</a>:</h4>
<p>and not the night before we are branching beta</p>



<a name="175817544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175817544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Gilcher <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175817544">(Sep 16 2019 at 14:33)</a>:</h4>
<p>Is the main problem here a semantic problem or an implementation problem?</p>



<a name="175825572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175825572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175825572">(Sep 16 2019 at 15:55)</a>:</h4>
<p>Seems like the former to me, first and foremost: figuring out the semantics we want</p>



<a name="175826177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175826177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175826177">(Sep 16 2019 at 16:02)</a>:</h4>
<p>Thinking about this more, I realize there may be a "fwd-compatible" path involving the perenially delayed (but still relevant) <a href="https://github.com/rust-lang/rfcs/issues/66" target="_blank" title="https://github.com/rust-lang/rfcs/issues/66">rfc#66</a></p>



<a name="175827568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175827568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175827568">(Sep 16 2019 at 16:16)</a>:</h4>
<p>Also, I'm realizing there may be 2 bugs at play here</p>



<a name="175827583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175827583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175827583">(Sep 16 2019 at 16:16)</a>:</h4>
<p>Question : what is the easiest way to "drive" a future from playground .. I guess maybe there isn't one?</p>



<a name="175827636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175827636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175827636">(Sep 16 2019 at 16:17)</a>:</h4>
<p>I guess I should look how the existing testcases for drop order that <span class="user-mention" data-user-id="116107">@davidtwco</span> added work</p>



<a name="175827671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175827671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175827671">(Sep 16 2019 at 16:17)</a>:</h4>
<p>I think there is a subtle flaw in the drop order for our desugaring around the "tail expression" of an async fn</p>



<a name="175827832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175827832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175827832">(Sep 16 2019 at 16:19)</a>:</h4>
<blockquote>
<p>Question : what is the easiest way to "drive" a future from playground .. I guess maybe there isn't one?</p>
</blockquote>
<p>(Feels like an omission from the standard library possibly)</p>



<a name="175830068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175830068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175830068">(Sep 16 2019 at 16:46)</a>:</h4>
<p>I mean it's kind of hard to do "independently" of a runtime, in any non-trivial case</p>



<a name="175830075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175830075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175830075">(Sep 16 2019 at 16:46)</a>:</h4>
<p>anyway, neither here nor there</p>



<a name="175833567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175833567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175833567">(Sep 16 2019 at 17:28)</a>:</h4>
<blockquote>
<p>Yeah, that's all that we needed to change on our end. </p>
</blockquote>
<p><span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> to be clear, this error was about some type from <code>format!</code> not being <code>Send</code>, I guess? i.e., this is ultimately an instance of <a href="https://github.com/rust-lang/rust/issues/64477" target="_blank" title="https://github.com/rust-lang/rust/issues/64477">#64477</a></p>



<a name="175837030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837030">(Sep 16 2019 at 18:10)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="116883">tmandry</span> seemed to report substantially more impact on Fuschia</p>
</blockquote>
<p>I think I counted about 60 errors in our tree, each of which had to be manually deciphered and fixed</p>



<a name="175837069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837069">(Sep 16 2019 at 18:10)</a>:</h4>
<p>maybe more in targets that depend on other targets which broke</p>



<a name="175837117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837117">(Sep 16 2019 at 18:11)</a>:</h4>
<p>the fix is always the same, but half the time the diagnostics are very unhelpful (the other half they pretty much point you right to the code you need to change)</p>



<a name="175837236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837236">(Sep 16 2019 at 18:12)</a>:</h4>
<p>Sorry for the spam, but I've finished <a href="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0" target="_blank" title="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0">my gist</a>. It's kind of ridiculously long. The TL;DR at the front tries to summarize the situation. </p>
<p>The good news:</p>
<ul>
<li>Some of the problems are the result of a bug (<a href="https://github.com/rust-lang/rust/issues/64512" target="_blank" title="https://github.com/rust-lang/rust/issues/64512">#64512</a>) which should be fixed regardless.</li>
</ul>
<p>The bad news:</p>
<ul>
<li>Most are not, and are just a fallout from adopting the more consistent drop order (<a href="https://github.com/rust-lang/rust/issues/64477" target="_blank" title="https://github.com/rust-lang/rust/issues/64477">#64477</a>).</li>
</ul>
<p>One unknown:</p>
<ul>
<li>It seems like most codebases had <em>minimal</em> impact but <span class="user-mention" data-user-id="116883">@tmandry</span> suggested Fuschia was an exception.</li>
</ul>
<p>Overall, I think we have to choose between:</p>
<ul>
<li>master's semantics, which are more consistent between sync/unsync, and supported <code>foo(&amp;vec![]).await</code></li>
<li>the older semantics, which were inconsistent, but more efficient; as they resulted in fewer temporaries live over an await, they improve ergonomics in cases where those temporaries are not <code>Send</code></li>
<li>the ergonomic call is not entirely obvious, but I suspect that the older semantics win overall; moreover, they offer <em>some</em> pathway for future extensions to close the gap, whereas I see no way to modify master's semantics to accommodate non-Send temporaries.</li>
</ul>
<p>On net, I'm not really sure what I think though.</p>
<p>cc <span class="user-group-mention" data-user-group-id="1172">@WG-async-foundations</span> <span class="user-mention" data-user-id="126931">@centril</span>, <span class="user-mention" data-user-id="239881">@Josh Triplett</span>, <span class="user-mention" data-user-id="116083">@pnkfelix</span>, <span class="user-mention" data-user-id="203289">@boats</span>, <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> <span class="user-mention" data-user-id="215333">@Florian Gilcher</span></p>



<a name="175837329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837329">(Sep 16 2019 at 18:13)</a>:</h4>
<p>cc <span class="user-group-mention" data-user-group-id="1172">@WG-async-foundations</span> <span class="user-mention" data-user-id="126931">@centril</span>, <span class="user-mention" data-user-id="239881">@Josh Triplett</span>, <span class="user-mention" data-user-id="116083">@pnkfelix</span>, <span class="user-mention" data-user-id="203289">@boats</span>, <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> <span class="user-mention" data-user-id="215333">@Florian Gilcher</span> <span aria-label="point up" class="emoji emoji-1f446" role="img" title="point up">:point_up:</span>  -- I edited the message which seems to trigger some Zulip bug that clears the notification, sorry</p>



<a name="175837406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837406">(Sep 16 2019 at 18:14)</a>:</h4>
<blockquote>
<p>the fix is always the same, but half the time the diagnostics are very unhelpful (the other half they pretty much point you right to the code you need to change)</p>
</blockquote>
<p>thanks! It sounds to me like you are hitting both <a href="https://github.com/rust-lang/rust/issues/64512" target="_blank" title="https://github.com/rust-lang/rust/issues/64512">#64512</a> (which has reasonably targeted diagnostics) and <a href="https://github.com/rust-lang/rust/issues/64477" target="_blank" title="https://github.com/rust-lang/rust/issues/64477">#64477</a> (which doesn't)</p>



<a name="175837425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837425">(Sep 16 2019 at 18:14)</a>:</h4>
<p>If we had a fix for <a href="https://github.com/rust-lang/rust/issues/64512" target="_blank" title="https://github.com/rust-lang/rust/issues/64512">#64512</a>, do you think you could try reverting those fixes and seeing the effect?</p>



<a name="175837512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837512">(Sep 16 2019 at 18:16)</a>:</h4>
<blockquote>
<p>thanks! It sounds to me like you are hitting both <a href="https://github.com/rust-lang/rust/issues/64512" target="_blank" title="https://github.com/rust-lang/rust/issues/64512">#64512</a> (which has reasonably targeted diagnostics) and <a href="https://github.com/rust-lang/rust/issues/64477" target="_blank" title="https://github.com/rust-lang/rust/issues/64477">#64477</a> (which doesn't)</p>
</blockquote>
<p>that sounds right</p>



<a name="175837592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837592">(Sep 16 2019 at 18:16)</a>:</h4>
<p>and yes I can, I only fixed a few before I decided to wait and see if this was going to stick or not ;)</p>



<a name="175837780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837780">(Sep 16 2019 at 18:18)</a>:</h4>
<p>those never even made it into the tree, so we'll have a fresh slate to look at</p>



<a name="175837784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175837784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175837784">(Sep 16 2019 at 18:18)</a>:</h4>
<blockquote>
<p>and yes I can, I only fixed a few before I decided to wait and see if this was going to stick or not ;)</p>
</blockquote>
<p>smart :)</p>



<a name="175841753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175841753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175841753">(Sep 16 2019 at 19:00)</a>:</h4>
<blockquote>
<p>the temporaries in $body wind up being dropped after the let-bound variables of the block. Proposed fix in a comment below.</p>
</blockquote>
<p>wait what? I thought in <code>let x = expr; body</code>, <code>x</code> is dropped after stuff in <code>body</code> (inverse declaration order)?</p>



<a name="175842738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175842738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175842738">(Sep 16 2019 at 19:10)</a>:</h4>
<p>So, for better or worse -- I mostly think worse, these days -- the <em>temporaries</em> in a tail expression of a block are promoted to the surrounding "temporary lifetime context".</p>



<a name="175842993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175842993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175842993">(Sep 16 2019 at 19:13)</a>:</h4>
<p>(The original motivation was that <code>let x = expr;</code> and <code>let x = {expr};</code> should work equivalently, which I now suspect was wrong-headed.)</p>



<a name="175851021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175851021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175851021">(Sep 16 2019 at 20:46)</a>:</h4>
<p>That's probably going to end up being Rust's equivalent of Python's and C99's loop variable scoping, in terms of "quirk to explain to new users".</p>



<a name="175855659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175855659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175855659">(Sep 16 2019 at 21:44)</a>:</h4>
<p>I was wondering if we can change it, maybe in an edition</p>



<a name="175855672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175855672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175855672">(Sep 16 2019 at 21:44)</a>:</h4>
<p>non-trivial to do but maybe worthwhile</p>



<a name="175868233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175868233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175868233">(Sep 17 2019 at 01:23)</a>:</h4>
<p>I suspect we had use cases for this in mind more complex than just "adding braces around an expression shouldn't change scoping".</p>



<a name="175876805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175876805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthias247 <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175876805">(Sep 17 2019 at 05:16)</a>:</h4>
<blockquote>
<blockquote>
<p>Question : what is the easiest way to "drive" a future from playground .. I guess maybe there isn't one?</p>
</blockquote>
<p>(Feels like an omission from the standard library possibly)</p>
</blockquote>
<p>I think adding just <code>block_on(future)</code> to the std library would probably not too controversial.</p>



<a name="175877523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175877523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthias247 <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175877523">(Sep 17 2019 at 05:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I am not sure whether it helps for the discussion, but sync and async functions are already consistent in other ways. E.g. that async functions are cancellable and may not resume after a <code>.await</code>  point, which users might need to design for.<br>
But being as consistent as possible has  still the advantage of reducing the cognitive overhead of dealing with 2 worlds, so I understand the reasoning behind the change to align the lifetime of temporaries.</p>
<p>On the other hand the new issue is just another consistency issue: Normal functions never experience the symptom of parts of the function being called on a different thread, whereas it is normal for futures on multithreaded executors.</p>
<p>So it seems like we need to trade of which of those 2 seems more reasonable?</p>



<a name="175940623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/175940623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#175940623">(Sep 17 2019 at 19:31)</a>:</h4>
<p>I wonder if later on we might be able to drop the <code>+ Send</code> part of <code>impl Future + Send</code> for a same thread executor,<br>
maybe by have a syntax like: <code>async fn foo() -&gt; () + !Send</code> - then the local variables would not need <code>Send</code> over suspention points?</p>



<a name="176029769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176029769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176029769">(Sep 18 2019 at 18:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  some notes:</p>
<ul>
<li>Agree re. current master order.</li>
<li>Would be nice to give as much time as needed for this in t-lang mtg.</li>
<li>Pure drop sounds like <code>const fn drop</code> :P</li>
</ul>



<a name="176029891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176029891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176029891">(Sep 18 2019 at 18:06)</a>:</h4>
<p>possibly relevant: <a href="https://github.com/rust-rfcs/const-eval/pull/27" target="_blank" title="https://github.com/rust-rfcs/const-eval/pull/27">https://github.com/rust-rfcs/const-eval/pull/27</a></p>
<p>also cc <span class="user-mention" data-user-id="124288">@oli</span>  <span class="user-mention" data-user-id="120791">@RalfJ</span> <span class="user-mention" data-user-id="119009">@eddyb</span>  <span class="user-mention" data-user-id="118594">@ecstatic-morse</span></p>



<a name="176033278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176033278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176033278">(Sep 18 2019 at 18:43)</a>:</h4>
<p>context for those following along is that I sent this e-mail to the lang team</p>
<blockquote>
<p>Hey lang team,</p>
<p>So I just want to raise this issue of temporary scopes a bit more broadly, since we're going to be stabilizing async-await soon and that won't leave us room to make changes. I've written up a gist that contains the details:</p>
<p><a href="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0" target="_blank" title="https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0">https://gist.github.com/nikomatsakis/fee0e47e14c09c4202316d8ea51e50a0</a></p>
<p>For those who've seen the gist, I made a few minor edits. In particular, I noted that (a) some of the regression reports can be fixed by making the compiler more precise about what is being captured and (b) there is a forwards compatible path to improving all cases, and it would benefit sync code to boot, but it would be a major bit of design work. (In particular, we'd need some mechanism for "pure drops" that lets us move drops earlier.)</p>
<p><strong>After having thought about this for a while, I think that the current order on master is correct, but I wanted to raise it to give people time to object.</strong></p>
</blockquote>



<a name="176033300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176033300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176033300">(Sep 18 2019 at 18:43)</a>:</h4>
<p>Also, I just opened <a href="https://github.com/rust-lang/rust/pull/64584" target="_blank" title="https://github.com/rust-lang/rust/pull/64584">https://github.com/rust-lang/rust/pull/64584</a>, which addresses some "overzealous" cases of <a href="https://github.com/rust-lang/rust/issues/64477" target="_blank" title="https://github.com/rust-lang/rust/issues/64477">#64477</a></p>



<a name="176039581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176039581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176039581">(Sep 18 2019 at 19:53)</a>:</h4>
<p>I've read the gist and I agree that the current rules on stable are fundamentally correct. <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="176039662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176039662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176039662">(Sep 18 2019 at 19:53)</a>:</h4>
<p>With the really unfortunate <code>&amp;format!()</code> example, the <code>Arguments</code> temporary created shouldn't actually need to outlive the future, because it will be moved into the <code>std::fmt::format</code> call which returns a <code>String</code>, is this an example of the overzealousness you're talking about with 64584?</p>



<a name="176045037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176045037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176045037">(Sep 18 2019 at 20:49)</a>:</h4>
<p><span class="user-mention" data-user-id="203289">@boats</span> yes -- that is an example. I've heard a lot of people complain, similarly, about cases like this:</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"></span>
<span class="n">mem</span>::<span class="n">drop</span><span class="p">(</span><span class="n">x</span><span class="p">);</span><span class="w"></span>
<span class="n">foo</span><span class="p">().</span><span class="n">await</span><span class="p">;</span><span class="w"> </span><span class="c1">// error: x is considered maybe live</span>
</pre></div>



<a name="176045070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176045070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176045070">(Sep 18 2019 at 20:49)</a>:</h4>
<p>the fundamental problem here is that we do an "initial approximation" based on the HIR, which is used for trait checking; then we build the MIR, which gives us access to much more detailed information</p>



<a name="176045074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176045074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176045074">(Sep 18 2019 at 20:49)</a>:</h4>
<p>but it's too late</p>



<a name="176045225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176045225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176045225">(Sep 18 2019 at 20:51)</a>:</h4>
<p>I'm not sure what I think is the best fix. It may be possible to build the MIR first, but I don't entirely see how. Maybe it works because we're sufficiently restrictive of cycles or something. </p>
<p>I've been wondering though if there isn't room for us to refactoring the relationship of HIR to MIR, basically trying to create some kind of view onto HIR that gives us the detailed information we want  and suffices for borrow checking and other stuff, and which would then be the basis for building MIR. Anyway, that's going a bit astray.</p>



<a name="176054595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176054595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176054595">(Sep 18 2019 at 23:08)</a>:</h4>
<p>apparently <a href="https://github.com/rust-lang/rust/issues/64391" target="_blank" title="https://github.com/rust-lang/rust/issues/64391">#64391</a> was reopened :/</p>



<a name="176054868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176054868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176054868">(Sep 18 2019 at 23:13)</a>:</h4>
<p>it took a while but here's a <a href="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2018&amp;gist=c60a599834166b2c6b6567fb95062e08" target="_blank" title="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2018&amp;gist=c60a599834166b2c6b6567fb95062e08">minimization</a> it seems the fix might have only worked for Copy types ? (edit: posted it to the issue)</p>



<a name="176095680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176095680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176095680">(Sep 19 2019 at 12:53)</a>:</h4>
<p>Hmm, so I was able to build tokio-postgres; regardless, those errors are correct</p>



<a name="176095902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176095902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176095902">(Sep 19 2019 at 12:56)</a>:</h4>
<p>well, I'll have to dig a bit more</p>



<a name="176095958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176095958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176095958">(Sep 19 2019 at 12:56)</a>:</h4>
<p>there may be a tweaked desugaring we could use...</p>



<a name="176098837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176098837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176098837">(Sep 19 2019 at 13:29)</a>:</h4>
<p>OK, did a <a href="https://github.com/rust-lang/rust/issues/64391#issuecomment-533130363" target="_blank" title="https://github.com/rust-lang/rust/issues/64391#issuecomment-533130363">detailed examination</a>. The desugaring is not the problem. It seems like our MIR lowering is created a lot more drops than we need to -- and those drops sometime make us more conservative than we should be, because they introduce the possibility of unwind edges.</p>



<a name="176112245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176112245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176112245">(Sep 19 2019 at 15:43)</a>:</h4>
<p>hopefully I didn't reduce this so much that it isn't representative of the initial problem anymore; there were a lot more generic types in <code>tokio-postgres</code> (instead of a String argument per se) but that should be the same, moving a <code>T</code> argument between two <code>async fn</code>s, wrt the drops</p>



<a name="176113091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113091">(Sep 19 2019 at 15:50)</a>:</h4>
<p>Pushed a fix for both <a href="https://github.com/rust-lang/rust/issues/64391" target="_blank" title="https://github.com/rust-lang/rust/issues/64391">#64391</a> and <a href="https://github.com/rust-lang/rust/issues/64433" target="_blank" title="https://github.com/rust-lang/rust/issues/64433">#64433</a>, I believe.</p>



<a name="176113109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113109">(Sep 19 2019 at 15:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I'll try to check the tokio-postgres exampe again.</p>



<a name="176113144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113144">(Sep 19 2019 at 15:51)</a>:</h4>
<p>It's weird because I thought I checked that the crate itself was fixed before</p>



<a name="176113157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113157">(Sep 19 2019 at 15:51)</a>:</h4>
<p>I was confused by this as well</p>



<a name="176113173"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113173" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113173">(Sep 19 2019 at 15:51)</a>:</h4>
<p>the latest rev builds</p>



<a name="176113194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113194">(Sep 19 2019 at 15:51)</a>:</h4>
<p>because they added the workaround you mentioned earlier</p>



<a name="176113217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113217">(Sep 19 2019 at 15:51)</a>:</h4>
<p>I thought I reverted the workaround</p>



<a name="176113218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113218">(Sep 19 2019 at 15:51)</a>:</h4>
<p>but maybe I confused myself</p>



<a name="176113310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113310">(Sep 19 2019 at 15:52)</a>:</h4>
<p>maybe :)</p>



<a name="176113790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113790">(Sep 19 2019 at 15:56)</a>:</h4>
<p>OK, <a href="https://github.com/rust-lang/rust/issues/64391#issuecomment-533196561" target="_blank" title="https://github.com/rust-lang/rust/issues/64391#issuecomment-533196561">double checked</a></p>



<a name="176113804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113804">(Sep 19 2019 at 15:56)</a>:</h4>
<p>it appears I <em>was</em> confused before, but it should be good now</p>



<a name="176113830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176113830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176113830">(Sep 19 2019 at 15:57)</a>:</h4>
<p>awesome <span aria-label="tada" class="emoji emoji-1f389" role="img" title="tada">:tada:</span></p>



<a name="176114076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114076">(Sep 19 2019 at 15:59)</a>:</h4>
<p>not mega happy with my patch though :)</p>



<a name="176114085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114085">(Sep 19 2019 at 15:59)</a>:</h4>
<p>I mean, it's <em>ok</em></p>



<a name="176114093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114093">(Sep 19 2019 at 15:59)</a>:</h4>
<p>but the scope tracking mechanism feels like it could be simplified...</p>



<a name="176114120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114120">(Sep 19 2019 at 16:00)</a>:</h4>
<p>I wonder if we could <em>insert</em> drops instead of removing them</p>



<a name="176114259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114259">(Sep 19 2019 at 16:00)</a>:</h4>
<p>(ugh, unwinds)</p>



<a name="176114349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176114349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176114349">(Sep 19 2019 at 16:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> maybe a mir-opt test could be useful here?</p>



<a name="176138006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176138006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176138006">(Sep 19 2019 at 20:20)</a>:</h4>
<blockquote>
<p>maybe a mir-opt test could be useful here?</p>
</blockquote>
<p><a href="https://github.com/rust-lang/rust/pull/64584/commits/77fd0a76491afb4c93359f6ceb33a9f79c4f4228" target="_blank" title="https://github.com/rust-lang/rust/pull/64584/commits/77fd0a76491afb4c93359f6ceb33a9f79c4f4228">done</a></p>



<a name="176228521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176228521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176228521">(Sep 20 2019 at 20:38)</a>:</h4>
<p><span class="user-mention" data-user-id="116883">@tmandry</span> once <a href="https://github.com/rust-lang/rust/pull/64584" target="_blank" title="https://github.com/rust-lang/rust/pull/64584">https://github.com/rust-lang/rust/pull/64584</a> hits a nightly, you may want to take another stab at fuschia</p>



<a name="176242096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176242096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176242096">(Sep 21 2019 at 00:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> interestingly, the number of instances of that error has gone <em>up</em> from the last time I built</p>



<a name="176242099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176242099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176242099">(Sep 21 2019 at 00:59)</a>:</h4>
<p>but I'm guessing that's probably because some crates now compile successfully, which unblocks other crates which depend on them</p>



<a name="176242153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176242153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176242153">(Sep 21 2019 at 01:00)</a>:</h4>
<p>now I'm seeing 47 instances of that error ("Foo cannot be sent between threads safely"), up from 29</p>



<a name="176242274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176242274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176242274">(Sep 21 2019 at 01:04)</a>:</h4>
<p>and zero instances of "Foo does not live long enough", down from 25</p>



<a name="176242530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176242530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176242530">(Sep 21 2019 at 01:13)</a>:</h4>
<p>I am also now seeing instances of <a href="https://github.com/rust-lang/rust/issues/64636" target="_blank" title="https://github.com/rust-lang/rust/issues/64636">#64636</a>, which I think should be marked blocking</p>



<a name="176262390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176262390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176262390">(Sep 21 2019 at 12:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116883">@tmandry</span>  I think you'll have to investigate <a href="https://github.com/rust-lang/rust/issues/64636" target="_blank" title="https://github.com/rust-lang/rust/issues/64636">#64636</a> if you want it fixed before master promotion since it's so close <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="176289006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176289006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176289006">(Sep 22 2019 at 01:47)</a>:</h4>
<p>Looks like <span class="user-mention" data-user-id="119031">@Esteban Küber</span> already got to it &lt;3</p>



<a name="176406352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406352">(Sep 23 2019 at 20:27)</a>:</h4>
<p>hey y'all</p>



<a name="176406404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406404">(Sep 23 2019 at 20:28)</a>:</h4>
<p>sorry for being late to weigh in-- I was out last week</p>



<a name="176406443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406443">(Sep 23 2019 at 20:28)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/64584" target="_blank" title="https://github.com/rust-lang/rust/pull/64584">https://github.com/rust-lang/rust/pull/64584</a> is the most recent update?</p>



<a name="176406644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406644">(Sep 23 2019 at 20:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> should <a href="https://github.com/rust-lang/rust/issues/64391" target="_blank" title="https://github.com/rust-lang/rust/issues/64391">https://github.com/rust-lang/rust/issues/64391</a> be closed?</p>



<a name="176406921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406921">(Sep 23 2019 at 20:34)</a>:</h4>
<p>Probably</p>



<a name="176406935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406935">(Sep 23 2019 at 20:34)</a>:</h4>
<p>I'm not aware of any new reports or bugs</p>



<a name="176406980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406980">(Sep 23 2019 at 20:35)</a>:</h4>
<blockquote>
<p><a href="https://github.com/rust-lang/rust/pull/64584" target="_blank" title="https://github.com/rust-lang/rust/pull/64584">https://github.com/rust-lang/rust/pull/64584</a> is the most recent update?</p>
</blockquote>
<p>correct</p>



<a name="176406994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176406994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176406994">(Sep 23 2019 at 20:35)</a>:</h4>
<p>there may still be more bugs -- and of course we also know that the <code>Send</code> rules in particular are overly conservative</p>



<a name="176407006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/temporary%20lifetimes%20for%20awaited%20future%20%2364292%20%2364391/near/176407006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/temporary.20lifetimes.20for.20awaited.20future.20.2364292.20.2364391.html#176407006">(Sep 23 2019 at 20:35)</a>:</h4>
<p>(we could backport further fixes if needed)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>